package gnuplot;

/**
 * 
 * This interface makes it clear: please, if one plans to make another java
 * class, try following this or send ideas about how could it be better :D
 * 
 * @author thiago (twitter: thmosqueiro)
 *
 */

interface plotter 
{
		
		/**
		 * This method constructs the graphic, using
		 * definitions and setups. It would depend on 
		 * makePlotFile() and makeAuxDataFile().
		 */
		void makeGraphic();
				
		/**
		 * The output is the file with the graphic, possible beeing
		 * a gif, ps, jpeg, etc, even a pstricks file (for LaTeX
		 * users). This method defines it.
		 */
		public void setOutput(String filename, String type);

		/**
		 * Gnuplot treats differently 3d plots, plots with error 
		 * bars, etc. This method works all this out.
		 * 
		 */
		public void setPlotMethod(String plotmethod);
		
		/**
		 * Sets the title of the graphic.
		 */
		public void setTitle(String title);
		
		/**
		 * Sets X axes label.
		 */
		public void setXLabel(String lab);

		/**
		 * Sets Y axes label.
		 */
		public void setYLabel(String lab);
		
		/**
		 * Sets the point size.
		 */
		public void setPointSize(double x);

		/**
		 * Sets a new label. User should be allowed to create as
		 * many labels as he might want.
		 */
		public void setLabel(String text, double x, double y);	
		
		/**
		 * After running gnu plot, the graphic will be prompted in screen,
		 * and then it closes automatically. Setting a delay may help
		 * when creating graphic. By default, this time is set to 3 seconds.
		 * 
		 * If terminal is not the default one, please set this delay again.
		 */
		public void setDelay(double tempo);
	
}
